package demo1;

import javax.swing.*;
import java.awt.*;
import java.net.URL;
                         //一般都使用继承JFrame 这样就不需要重新创建JFrame对象了，直接就可以使用JFrame的方法
public class MyJFrameTest extends JFrame {
    //一般的组件的容器和非容器都定义在类里；
    //
    //继承了 JFrame 不需要创建JFrame对象了 ；
    // JFrame jFrame ;
    JButton jButton ;

    //组件的初始化和事件的绑定都放在构造方法里；
    public MyJFrameTest(){
        super("这是一个JFrame窗口");
        //居中 自己计算位置来居中
        //定义对象          获取屏幕大小
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        //获取屏幕宽度，然后减去窗口宽度 ，然后除以2 ，就是居中的位置 ；
        int offsetX = (screenSize.width - 600) / 2;
        int offsetY = (screenSize.height - 500) / 2;
        setLocation(offsetX,offsetY);        //然后给窗口设置位置

        // 创造一个按钮
        jButton = new JButton("这是一个按钮");  //按钮上面的字就是这里的
        //使用JFrame 的内容面板把按钮放上去 ， 按钮属于内容面板上，内容面板属于JFrame 上；
        Container contentPane = getContentPane();
        contentPane.add(jButton);

        //获取图片的内路径 ；                                           pt1 在image 包底下;
        URL resource = MyJFrameTest.class.getClassLoader().getResource("image\\pt1.png");
        //设置窗体的小图标 （在标题旁边）
        Image image = new ImageIcon(resource).getImage();   //获取图片
        setIconImage(image);        //需要传一个image对象；

        //设置大小
        setSize(600,500);
        //退出时退出窗口
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        // 大小不可改变
        setResizable(false);
        //窗口可见
        setVisible(true);

    }

    public static void main(String[] args) {
          MyJFrameTest myJFrameTest = new MyJFrameTest();
    }
}
